package string_;

import java.io.UnsupportedEncodingException;

/**
 * Created with IntelliJ IDEA.
 * ClassName: ConstructString
 * Package: string_
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 * Date: 2023-11-29
 * Time: 21:13
 */

public class ConstructString {

    public static void main(String[] args) throws UnsupportedEncodingException {
        //String与byte数组之间的转换 涉及到字符集的问题
        String str = new String("abc中国");
        //在UTF8 中一个汉字 占用三个字节  字符占用一个字节
        byte[] bytes = str.getBytes(); //默认字符集 UTF8
        for (int i = 0; i < bytes.length; i++) {
            //输出每个字符的ASCII值
            System.out.println(bytes[i]);
        }

        byte[] bytes1 = str.getBytes("gbk");
        //在GBK当中 一个汉字 占两个字节
        for (int i = 0; i < bytes1.length; i++) {
            System.out.println(bytes1[i]);
        }

        //解码的字符集 要和 编码的字符集一致 不然就会乱码
        //编码 String ---> Byte[]
        //解码 Byte[] ---> String
        String s33 = new String(bytes,"utf-8");
        //默认是这个 显示可以指定
        System.out.println(s33);

    }

    public static void main2(String[] args) {
        //String 与常见的其他结构的转换
        //1.String 与 基本数据类型 包装类的转换
        int num = 10;
        //方式一
        String s1 = num + "";
        //方式二 将num转换为string 在后者找方法
        String s2 = String.valueOf(num);

        //String ----》 基本数据类型 找包装类了
        String s3 = "123";
        int i = Integer.parseInt(s3);
        System.out.println(i);
    }


    //字符串构造器
    public static void main1(String[] args) {

        String s1 = new String();
        String s2 = new String("");
        //char 型的构造器
        String s3 = new String(new char[]{'a','b','c'}); //abc
        System.out.println(s3);

        //将String 转为 char数组  使用到的toCharArray方法
        String str = "hello";
        char[] charArray = str.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            System.out.println(charArray[i]);
        }
    }
}
